Skip to content

Fixed errors occurring when using certain web framework integration packages and MySQL options simultaneously in @fedify/init#656

Open
2chanhaeng wants to merge 13 commits intofedify-dev:mainfrom
2chanhaeng:main
Open

Fixed errors occurring when using certain web framework integration packages and MySQL options simultaneously in @fedify/init#656
2chanhaeng wants to merge 13 commits intofedify-dev:mainfrom
2chanhaeng:main

Conversation

@2chanhaeng
Copy link
Copy Markdown
Contributor

Summary

Fixed an issue where fedify init failed to properly create projects when using specific web frameworks (Astro, ElysiaJS, Nitro) alongside @fedify/mysql. Most of these issues were configuration problems during app creation with @fedify/init rather than bugs within @fedify/mysql itself.

Related issue

Changes

  • Added env property to WebFrameworkInitializer so frameworks can declare
    their own environment variables, merged with KV/MQ env vars into .env.
  • Dynamically import @std/dotenv/load only when env vars exist (Deno),
    removing hardcoded imports from bare-bones and hono templates.
  • Added @dotenvx/dotenvx dependency for Astro on Node.js and wrapped
    Node.js task commands with dotenvx run -- where missing.
  • Added --allow-read to Deno task commands for Express and ElysiaJS
    so .env files can be read.
  • Extracted inline ternary task definitions into static TASKS lookup tables
    per framework for readability.
  • Renamed packageManagerToRuntime to pmToRt.
  • Added depends = ["prepare"] to test:init task in mise.toml.

Benefits

  • .env variables are now properly loaded at runtime, fixing the
    TypeError: Cannot read properties of undefined in mysql2.
  • Frameworks can declare env vars without manually managing .env files.

Checklist

  • Did you add a changelog entry to the CHANGES.md?
  • Did you write some relevant docs about this change (if it's a new feature)?
  • Did you write a regression test to reproduce the bug (if it's a bug fix)?
  • Did you write some tests for this change (if it's a new feature)?
  • Did you run mise test on your machine?

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the @fedify/init package to streamline environment variable management and task definitions across various web frameworks. It introduces a centralized env property in the WebFrameworkInitializer interface, automates the inclusion of @std/dotenv for Deno projects, and refactors framework tasks into a more maintainable constant-based structure. The review feedback recommends strengthening type safety by using Record<string, string> instead of object for the env and tasks properties and fixing a minor quoting typo in the JSDoc for RuntimeDescription.

/** Environment variables required by this framework, keyed by name to
* default value. Merged together with KV store and message queue env vars
* into the generated `.env` file. */
env?: object;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The env property should be typed as Record<string, string> instead of object to provide better type safety and ensure that environment variables are always key-value pairs of strings.

Suggested change
env?: object;
env?: Record<string, string>;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The properties for this option can vary depending on other conditions. Using a Record<string, string> type could cause type errors and confuse contributors, so I used object instead.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What kind of types are these properties filled with?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, the HOST property is used in nitroDescription when in test mode. It is set as testMode ? { HOST: "127.0.0.1" } : {}. If that property type is defined as Record<string, string>, a type error occurs on the entire result of the init method. This requires unnecessary type assertions. It could also cause confusion for contributors. I left a mention about a similar issue in another comment.

2026-04-05.17.53.55.mov

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, could you show the whole type error message? I guess we could solve this somehow.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TS2322 [ERROR]: Type 'Promise<{ command: string[]; dependencies: { "@fedify/lint"?: string | undefined; "@fedify/h3": string; }; devDependencies: { "@fedify/lint": string; eslint: string; "@biomejs/biome": string; }; federationFile: string; ... 4 more ...; instruction: Message; }>' is not assignable to type 'WebFrameworkInitializer | Promise<WebFrameworkInitializer>'.
  Type 'Promise<{ command: string[]; dependencies: { "@fedify/lint"?: string | undefined; "@fedify/h3": string; }; devDependencies: { "@fedify/lint": string; eslint: string; "@biomejs/biome": string; }; federationFile: string; ... 4 more ...; instruction: Message; }>' is not assignable to type 'Promise<WebFrameworkInitializer>'.
    Type '{ command: string[]; dependencies: { "@fedify/lint"?: string | undefined; "@fedify/h3": string; }; devDependencies: { "@fedify/lint": string; eslint: string; "@biomejs/biome": string; }; federationFile: string; ... 4 more ...; instruction: Message; }' is not assignable to type 'WebFrameworkInitializer'.
      Types of property 'env' are incompatible.
        Type '{ HOST: string; } | { HOST?: undefined; }' is not assignable to type 'Record<string, string> | undefined'.
          Type '{ HOST?: undefined; }' is not assignable to type 'Record<string, string>'.
            Property 'HOST' is incompatible with index signature.
              Type 'undefined' is not assignable to type 'string'.
  init: async ({ packageManager: pm, testMode }) => ({
                                                    ^
    at file:///workspaces/fedify/packages/init/src/webframeworks/nitro.ts:11:53

    The expected type comes from the return type of this signature.
      init(
      ^
        at file:///workspaces/fedify/packages/init/src/types.ts:114:3

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about passing undefined instead of {}?

testMode ? { HOST: "127.0.0.1" } : undefined

Or using type assertion?

testMode ? { HOST: "127.0.0.1" } : ({} as Record<string, string>)

Copy link
Copy Markdown
Contributor Author

@2chanhaeng 2chanhaeng Apr 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I considered the future use of this property in deinitions of WebFrameworkDescription object of other framework. Since using undefined can be only used in cases exist or not, using type assertion would be appropriate. However, when the required properties differ, the type must be explicitly specified as as Record<string, string> every time. Doing this unnecessary type definition is a very tedious task.
For env, since it is not widely used yet, one might think it's fine to specify it manually each time. However, for tasks, this explicit specification is required every time. For tasks in a framework that supports both Deno and Node.js, at least the following properties are needed: pm === "deno" ? { dev: "deno task" } : { dev: "node script", lint: "eslint ." } Deno does not require lint task cause it has its own lint command. However, Node.js requires lint script definition. Therefore, since the properties of the two objects are different, specifying as Record<string, string> is always necessary.
If env also gets used in many WebFrameworkDescription object definitions like tasks, as Record<string, string> will be required every time. There is no need to confuse contributors by forcing such unnecessary type specifications. For this reason, I defined the types of the two properties as object instead of Record<string, string>.

@2chanhaeng 2chanhaeng changed the title Fix fedify init Fixed errors occurring when using certain web framework integration packages and MySQL options simultaneously in @fedify/init Apr 3, 2026
@issues-auto-labeler issues-auto-labeler bot added activitypub/interop Interoperability issues component/cli CLI tools related component/integration Web framework integration labels Apr 3, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 3, 2026

Codecov Report

❌ Patch coverage is 80.13699% with 29 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
packages/init/src/webframeworks/elysia.ts 65.51% 10 Missing ⚠️
packages/init/src/webframeworks/astro.ts 76.92% 6 Missing ⚠️
packages/init/src/webframeworks/nitro.ts 0.00% 5 Missing ⚠️
packages/init/src/webframeworks/bare-bones.ts 89.47% 2 Missing ⚠️
packages/init/src/webframeworks/hono.ts 89.47% 2 Missing ⚠️
packages/init/src/webframeworks/solidstart.ts 90.90% 2 Missing ⚠️
packages/init/src/webframeworks/express.ts 95.00% 1 Missing ⚠️
packages/init/src/webframeworks/next.ts 0.00% 1 Missing ⚠️
Files with missing lines Coverage Δ
packages/init/src/action/utils.ts 57.14% <100.00%> (+2.42%) ⬆️
packages/init/src/webframeworks/utils.ts 40.00% <100.00%> (-5.46%) ⬇️
packages/init/src/webframeworks/express.ts 40.84% <95.00%> (+23.92%) ⬆️
packages/init/src/webframeworks/next.ts 24.44% <0.00%> (+1.04%) ⬆️
packages/init/src/webframeworks/bare-bones.ts 35.52% <89.47%> (+20.24%) ⬆️
packages/init/src/webframeworks/hono.ts 34.11% <89.47%> (+18.26%) ⬆️
packages/init/src/webframeworks/solidstart.ts 32.29% <90.90%> (+19.38%) ⬆️
packages/init/src/webframeworks/nitro.ts 19.60% <0.00%> (+1.08%) ⬆️
packages/init/src/webframeworks/astro.ts 35.29% <76.92%> (+22.50%) ⬆️
packages/init/src/webframeworks/elysia.ts 35.36% <65.51%> (+21.95%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dahlia
Copy link
Copy Markdown
Member

dahlia commented Apr 3, 2026

@codex review

@dahlia
Copy link
Copy Markdown
Member

dahlia commented Apr 3, 2026

@coderabbitai full review

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 3, 2026

✅ Actions performed

Full review triggered.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 3, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Env handling added to init: frameworks may supply an env object that drives conditional dotenv imports for Deno; init tasks were centralized under TASKS and runtime mapping renamed to pmToRt. test:init task now depends on prepare.

Changes

Cohort / File(s) Summary
Config & Task Dependency
mise.toml
Added depends = ["prepare"] to [tasks."test:init"].
Types
packages/init/src/types.ts
WebFrameworkInitializer.files forbids ".env"; added env?: object; tasks loosened to object. Removed inline JSDoc on RuntimeDescription.label.
Action: deps / templates / set / utils
packages/init/src/action/deps.ts, packages/init/src/action/templates.ts, packages/init/src/action/set.ts, packages/init/src/action/utils.ts
Propagated env through init APIs: getDependencies can add @std/dotenv for Deno when env non-empty; getImports may insert import "@std/dotenv/load"; conditionally; setEnv merges initializer.env with kv/mq env; added needsDenoDotenv helper.
Action — minor
packages/init/src/action/patch.ts
Only import order changed (../lib.ts before ../utils.ts).
Templates — Deno entrypoints
packages/init/src/templates/bare-bones/main/deno.ts.tpl, packages/init/src/templates/hono/index/deno.ts.tpl
Removed unconditional side-effect @std/dotenv/load imports; dotenv load now conditional during generation.
Runtime helper rename
packages/init/src/webframeworks/utils.ts
Renamed packageManagerToRuntimepmToRt and simplified mapping logic.
Webframeworks — task/stdlib standardization
packages/init/src/webframeworks/...
packages/init/src/webframeworks/astro.ts, .../bare-bones.ts, .../elysia.ts, .../express.ts, .../hono.ts, .../solidstart.ts, .../next.ts, .../nitro.ts
Centralized per-runtime TASKS[pmToRt(pm)]; standardized lint task for Node-family runtimes; added/standardized @dotenvx/dotenvx for non-Deno paths; simplified conditional spreads and moved Nitro test-mode env into descriptor env.
Other / scaffolding
packages/init/src/action/*, packages/init/src/webframeworks/*
Propagated env and made assorted refactors and import adjustments across init package.

Sequence Diagram(s)

sequenceDiagram
    participant CLI as "CLI (fedify init)"
    participant Action as "Init Action Layer"
    participant Templates as "Template Generator"
    participant FS as "Filesystem / Output"

    CLI->>Action: init(packageManager, initializer, env, kv, mq)
    Action->>Action: compute dependencies (include `@std/dotenv` if packageManager==deno && env non-empty)
    Action->>Templates: request imports/files (pass packageManager, env, kv, mq, initializer)
    Templates->>Action: return files & import blocks (may include dotenv load)
    Action->>FS: write scaffold (files, tasks, deps)
    FS-->>CLI: project scaffolded
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main fix: resolving errors when using certain web framework integration packages with MySQL options in @fedify/init.
Description check ✅ Passed The PR description is directly related to the changeset, detailing the root cause (missing env variables and incorrect dotenv loading) and listing all key changes made.
Linked Issues check ✅ Passed The PR successfully addresses issue #649 by: (1) adding env property to WebFrameworkInitializer for framework env vars [#649], (2) conditionally importing @std/dotenv/load only when env exists [#649], (3) adding @dotenvx/dotenvx for Astro Node.js [#649], (4) adding --allow-read to Deno tasks [#649], and (5) refactoring task definitions for maintainability.
Out of Scope Changes check ✅ Passed All changes directly address issue #649: env handling, dotenv imports, task commands, dependency additions, and function renames are all scoped to fixing the framework+MySQL error.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/init/src/types.ts`:
- Around line 87-90: The types file defines env and tasks as type object which
is too permissive; change the declarations for env and tasks in the types.ts
(the properties named env and tasks) to be Record<string, string> so they match
downstream consumers (InitCommandData.env and package.json scripts) and prevent
arrays/nested objects from passing type checks; update any related
interface/type definitions that reference these properties to use Record<string,
string> as well.

In `@packages/init/src/webframeworks/bare-bones.ts`:
- Around line 67-79: TASKS currently defines dev/prod for runtimes but omits a
lint entry for non-Deno targets; update the TASKS object (the TASKS constant) to
add a "lint" script for both "bun" and "node" entries that runs the ESLint
config generated for these projects (e.g., something like an appropriate eslint
command that targets the project), so bun and node have a standard lint entry
analogous to other initializers; ensure the "deno" entry remains unchanged.

In `@packages/init/src/webframeworks/elysia.ts`:
- Around line 80-84: The "start" npm script currently launches the built app
without dotenvx so production .env vars are not loaded; update the node.scripts
"start" entry so it runs under dotenvx (same pattern as "dev") — e.g., invoke
dotenvx run -- before the node command and preserve NODE_ENV=production —
ensuring the "start" script loads environment variables like MySQL credentials
at runtime.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1ccd4129-54e1-423c-9a23-6e09318700a4

📥 Commits

Reviewing files that changed from the base of the PR and between bd60323 and 574a6b4.

📒 Files selected for processing (17)
  • mise.toml
  • packages/init/src/action/deps.ts
  • packages/init/src/action/patch.ts
  • packages/init/src/action/set.ts
  • packages/init/src/action/templates.ts
  • packages/init/src/templates/bare-bones/main/deno.ts.tpl
  • packages/init/src/templates/hono/index/deno.ts.tpl
  • packages/init/src/types.ts
  • packages/init/src/webframeworks/astro.ts
  • packages/init/src/webframeworks/bare-bones.ts
  • packages/init/src/webframeworks/elysia.ts
  • packages/init/src/webframeworks/express.ts
  • packages/init/src/webframeworks/hono.ts
  • packages/init/src/webframeworks/next.ts
  • packages/init/src/webframeworks/nitro.ts
  • packages/init/src/webframeworks/solidstart.ts
  • packages/init/src/webframeworks/utils.ts
💤 Files with no reviewable changes (2)
  • packages/init/src/templates/hono/index/deno.ts.tpl
  • packages/init/src/templates/bare-bones/main/deno.ts.tpl

2chanhaeng added a commit to 2chanhaeng/fedify that referenced this pull request Apr 3, 2026
2chanhaeng added a commit to 2chanhaeng/fedify that referenced this pull request Apr 3, 2026
2chanhaeng added a commit to 2chanhaeng/fedify that referenced this pull request Apr 3, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/init/src/action/deps.ts`:
- Around line 29-40: Introduce a small shared helper (e.g.,
needsDenoDotenv(packageManager, env) or shouldIncludeStdDotenv) that
encapsulates the predicate packageManager === "deno" && Object.keys(env).length
> 0, then replace the inline predicate in the Deps builder (the object that
currently spreads { "@std/dotenv": deps["@std/dotenv"] }) and the analogous
check in packages/init/src/action/templates.ts to call that helper so both
locations use the same logic and cannot drift.

In `@packages/init/src/webframeworks/solidstart.ts`:
- Around line 98-102: The package scripts under the node object define a start
task that doesn't load .env in production; update the node.start script (the
"start" entry in the node object) to invoke the process with environment file
loading (e.g., use the existing dotenvx pattern: run the start via "dotenvx run
-- vinxi start" or equivalent) so that environment variables required by
packages like `@fedify/mysql` are available when running vinxi start in
production.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2c27b575-8942-4876-8520-27821d544b1a

📥 Commits

Reviewing files that changed from the base of the PR and between 1d41ced and 619a7eb.

📒 Files selected for processing (17)
  • mise.toml
  • packages/init/src/action/deps.ts
  • packages/init/src/action/patch.ts
  • packages/init/src/action/set.ts
  • packages/init/src/action/templates.ts
  • packages/init/src/templates/bare-bones/main/deno.ts.tpl
  • packages/init/src/templates/hono/index/deno.ts.tpl
  • packages/init/src/types.ts
  • packages/init/src/webframeworks/astro.ts
  • packages/init/src/webframeworks/bare-bones.ts
  • packages/init/src/webframeworks/elysia.ts
  • packages/init/src/webframeworks/express.ts
  • packages/init/src/webframeworks/hono.ts
  • packages/init/src/webframeworks/next.ts
  • packages/init/src/webframeworks/nitro.ts
  • packages/init/src/webframeworks/solidstart.ts
  • packages/init/src/webframeworks/utils.ts
💤 Files with no reviewable changes (2)
  • packages/init/src/templates/bare-bones/main/deno.ts.tpl
  • packages/init/src/templates/hono/index/deno.ts.tpl

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/init/src/action/templates.ts`:
- Around line 65-68: The concat call inside the when branch is passing a string
(which iterates into chars) to `@fxts/core/concat`, so the import statement is
being spread into individual characters; update the when(...) call that
references needsDenoDotenv({ packageManager, env }) to call concat with an array
containing the full import string (e.g., change concat('import
"@std/dotenv/load";') to concat(['import "@std/dotenv/load";'])) so the whole
import line is inserted as a single element.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 09e2756c-a0a8-48d5-9628-66b26f40eab2

📥 Commits

Reviewing files that changed from the base of the PR and between 619a7eb and ec2889c.

📒 Files selected for processing (5)
  • packages/init/src/action/deps.ts
  • packages/init/src/action/templates.ts
  • packages/init/src/action/utils.ts
  • packages/init/src/webframeworks/bare-bones.ts
  • packages/init/src/webframeworks/solidstart.ts

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/init/src/action/templates.ts`:
- Around line 49-52: Update the JSDoc for the getImports function to reflect its
current parameters: kv, mq, packageManager, and env (typed by InitCommandData).
Edit the docblock above export const getImports to list and briefly describe
each destructured param (kv, mq, packageManager, env) and update the `@param`
annotation to reference the full destructured object (e.g., `@param` param0 -
Destructured InitCommandData containing kv, mq, packageManager, and env). Ensure
the `@returns` description remains accurate for the function's return value.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d052db82-e898-4586-96b8-b3ea9494bda9

📥 Commits

Reviewing files that changed from the base of the PR and between ec2889c and 79e1310.

📒 Files selected for processing (1)
  • packages/init/src/action/templates.ts

@2chanhaeng 2chanhaeng requested a review from dahlia April 5, 2026 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

activitypub/interop Interoperability issues component/cli CLI tools related component/integration Web framework integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error when combining certain Web Framework Integration packages with @fedify/mysql

2 participants